#if !defined(__MARKERINFO_H__)
#define __MARKERINFO_H__

#define MARKERINFO_MARKER_SIZE 155.0 // maldito deveria ser 160.0, mas a impressora trollou

bool MarkerInfo_init(double markerSizeInMm);
void MarkerInfo_parseImageFrame(unsigned long * imageFrame);
bool MarkerInfo_getMarkerMatrix(int markerId, double matrix[3][4]);
void MarkerInfo_convertArToGlMatrix(double arMatrix[3][4], double glMatrix[16]);
void MarkerInfo_convertGlToArMatrix(double glMatrix[16], double arMatrix[3][4]);
void MarkerInfo_matrixMultiply(double glMatrixResult[16], double glMatrixA[16], double glMatrixB[16]);
void MarkerInfo_matrixMultiply(double arMatrixResult[3][4], double arMatrixA[3][4], double arMatrixB[3][4]);
void MarkerInfo_matrixInvert(double arMatrixOriginal[3][4], double arMatrixInverted[3][4]);
void MarkerInfo_matrixInvert(double glmatrixOriginal[16], double glMatrixInverted[16]);
void MarkerInfo_getProjectionMatrix(double glMatrix[16]);
void MarkerInfo_setTreshold(unsigned char treshold);
unsigned char MarkerInfo_getTreshold();

#endif
